The BIOS includes a collection of executable programs and data to initialize the separate components of a computer system. Upon turning on (or alternatively resetting) the computer system, the BIOS executes from the nonvolatile memory. After initializing a nonvolatile memory, in a personal computer, the BIOS commonly loads the operating system or parts of it. Subsequent to loading the operating system, a BIOS routine may be alternatively executed by the BIOS, or may be accessed and executed by the operating system, either from a volatile or from a non-volatile memory.
Each component of a computer system to be initialized has a plug-in routine resident in the non-volatile memory to interface with the component. Conventionally, a BIOS initialization routine initializes a component through its associated plug-in. Conventionally, each BIOS initialization routine is a distinct program having a distinct interface with the driver, which cannot interface with a different driver. When a component is changed or a new component is joined to the computer system, conventionally a separate initializing routine must be built according to the interface characteristics and data requirements of the specific driver with which it is to interface.